約 5,275,226 件
https://w.atwiki.jp/duke15/pages/9.html
Database initialization root# mkdir /usr/local/pgsql/data root# chown postgres /usr/local/pgsql/data root# su postgres postgres$ initdb -D /usr/local/pgsql/data Starting DB $ postmaster -D /usr/local/pgsql/data logfile 2 1 pg_ctl start -l logfile add user postgres=# create user name password password ; CREATE ROLE postgres=# \du List of roles Role name | Superuser | Create role | Create DB | Connections | Member of -----------+-----------+-------------+-----------+-------------+----------- name | no | no | no | no limit | postgres | yes | yes | yes | no limit | (2 rows) Setup Copy JDBC driver Copy posgresql.jar to $JBOSS_HOME/server/default/lib Copy postgres-service.xml Copy $JBOSS_HOME/docs/examples/jca/postgres-service.xml to $JBOSS_HOME/server/default/deploy Modify postgres-service.xml
https://w.atwiki.jp/geema/pages/13.html
検索 実はDBの検索って結構簡単にできるらしい。 例えば、universitiesテーブルから、name属性に「東京」を含むものを検索する時は SELECT * FROM universities WHERE name LIKE %東京% ; とすればOK。 ただし、文字コードには気をつけて下さい。 使い方 各自のアカウントがpostgresユーザとして登録されていれば psql でDBに入れます。 DBのコマンドに関しては \? でpostgresのコマンドが、 \h でSQLのコマンドが見れます。 PostgreSQLは基本的なコマンドは\(バックスラッシュ)+なにかでできるようになっています。 MySQLとその辺が異なるので注意ください。
https://w.atwiki.jp/rinn/pages/31.html
□postgreSQL ロック確認方法(実行中ジョブ確認) 下記の様なコマンドで、postgreSQLでLock中のオブジェクトが確認できます。 また、postgreSQLでは、各SQL操作はプロセスが分かれる為、そのコマンドから処理内容も 分かる場合があります。 psql iplocksdb -c "select b.relname, a.* from pg_locks a,pg_class b where a.relation=b.relfilenode order by a.pid;" postgreSQL関連のプロセスを下記の様にして、表示します。 (実行コマンド等の処理状況) [iplocks@del-vm146 iplocks]$ ps -aef | grep post | grep -v grep iplocks 18556 1 0 17 14 pts/2 00 00 00 /usr/bin/postmaster -i iplocks 18558 18556 0 17 14 pts/2 00 00 00 postgres stats buffer process iplocks 18559 18558 0 17 14 pts/2 00 00 00 postgres stats collector process iplocks 21209 18556 67 18 11 pts/2 00 01 27 postgres iplocks iplocksdb [local] DELETE ※OSのプロセスID=21209にてdelete文実行中 次に、Locks確認用のコマンドを実行します。 (ポストグレス内でのロック状況) [iplocks@del-vm146 iplocks]$ psql iplocksdb -c "select b.relname, a.* from pg_locks a LEFT OUTER JOIN pg_class b ON a.relation=b.relfilenode order by a.pid;" relname | relation | database | transaction | pid | mode | granted --------------+----------+----------+-------------+-------+------------------+--------- alarms | 902497 | 902367 | | 21209 |AccessShareLock | t - delet処理の為のロック alarms | 902497 | 902367 | | 21209 |RowExclusiveLock | t - delet処理の為のロック alertmsgs | 902502 | 902367 | | 21209 |AccessShareLock | t - delet処理の為のロック alertmsgs | 902502 | 902367 | | 21209 |RowExclusiveLock | t - delet処理の為のロック ubmdrilldown | 902668 | 902367 | | 21209 |AccessShareLock | t - delet処理の為のロック ubmdrilldown | 902668 | 902367 | | 21209 |RowExclusiveLock | t - delet処理の為のロック pg_class | 1259 | 902367 | | 21252 |AccessShareLock | t pg_locks | 16757 | 902367 | | 21252 |AccessShareLock | t (8 rows)※pid項目からOSプロセスIDとの比較から、どの処理がロックを使用して いるか分かります。
https://w.atwiki.jp/v-gallo/pages/13.html
PostgreSQL(ぽすとぐれすきゅーえる) オブジェクト関係データベース管理システム UNIX,Linux,Windows,OS/2などで使用可能 32bit/64bit双方で動作可能(32bitは共有バッファサイズが最大2GBに制限) MySQLとの性能差は現状ほぼないと考えていい メタコマンド一覧 落とし穴一覧 実行結果をCSV出力する方法 パフォーマンスチューニング
https://w.atwiki.jp/extranote/pages/52.html
「PostgreSQL」をタグに含むページは1つもありません。
https://w.atwiki.jp/m_shige1979/pages/334.html
基礎 ダウンロード インストール 起動、終了 データ定義 データベースユーザー作成 データベースユーザー削除 データベース作成 データベース削除 スキーマ作成 スキーマ削除 テーブル作成 テーブル削除 ファンクション作成 ファンクション削除 データ入出力 copy psql 起動オプション システムスキーマ システムデータ データベースチューニング postgresql.confファイルの編集 pg_hda.confファイルの編集 バックアップ、リカバリ バックアップ リカバリ レプリケーション ウォームスタンバイ Sloyny-I pgpool-Ⅱ DRBD
https://w.atwiki.jp/roundcube/pages/8.html
PostgreSQLパッチ RoundCubeは、MySQLが開発のメインとなっているようです。 PostgreSQLで使うには、いわゆるMyGresパッチ作業が必要です(注:MyGresは桑村さんから教えていただきました)。 RoundCubeは、エラーの内容が、logsディレクトリにerrorsファイルへ吐き出される。PHPのログファイルも合わせてデバッグ作業をおこなう。 もちろん、PostgreSQLのログファイルもチェックしよう。 PostgreSQLパッチ(2005.12.24) messageテーブル変更 from/cc/toで、「too long」が出た。text型へ変更 -- -- Table "messages" -- Name messages; Type TABLE; Schema public; Owner postgres -- CREATE TABLE "messages" ( message_id integer DEFAULT nextval( message_ids text) NOT NULL, user_id integer DEFAULT 0 NOT NULL, del integer DEFAULT 0 NOT NULL, cache_key character varying(128) DEFAULT character varying NOT NULL, idx integer DEFAULT 0 NOT NULL, uid integer DEFAULT 0 NOT NULL, subject text DEFAULT , "from" text DEFAULT , "to" text DEFAULT , cc text DEFAULT , date timestamp with time zone NOT NULL, size integer DEFAULT 0 NOT NULL, headers text NOT NULL, body text ); PostgreSQLパッチ情報(2005.10.15) Discussion Forums RoundCube Webmail PostgreSQL PostgreSQLパッチの数々 UNIX_TIMESTAMP()関数の問題 (2005-10-14) PostgreSQLのデフォルトではUNIX_TIMESTAMP関数は無い。 ディスカッションサイトでは2通り紹介されている。 1. PHPソースをパッチ - SELECT vars, ip, UNIX_TIMESTAMP(changed) AS changed + SELECT vars, ip, extract(epoch from changed) AS changed 2. 無ければ、RoundCube用に関数を作る(力技) create or replace function unix_timestamp (timestamp with time zone) time zoneがある場合 returns int as declare date alias for $1; timezero timestamp; offset interval; begin timezero = timestamp 1970-1-1 00 00 at time zone utc ; offset = date-timezero; return ( extract( days from offset)*86400+ extract( hours from offset)*3600+ extract( minutes from offset)*60+ extract( seconds from offset)) int; end; language plpgsql ; エスケープ文字が無いバグ(2005-10-15) - SELECT identity_id, name, email FROM identities WHERE user_id=1 AND del!= 1 ORDER BY "default" DESC, name ASC + SELECT identity_id, name, email FROM identities WHERE user_id=1 AND del!= 1 ORDER BY \"default\" DESC, name ASC パッチは2箇所 program\steps\mail\compose.inc(94) ORDER BY `default` DESC, name ASC", program\steps\settings\func.inc(151) ORDER BY `default` DESC, name ASC", PHP文法ミス roundcubemail/program/include/rcube_db.inc @@ -169,7 +169,7 @@ - $result = $this- db_handle- getOne("SELECT CURRVAL( " .$sequence. " )"); + $result = $this- db_handle- getOne("SELECT CURRVAL( $sequence )");
https://w.atwiki.jp/ohden/pages/30.html
前提条件 Ubuntu8.10server install ~ tools ~ PostGIS EnterpriseDB Postgres Plus Advanced Server http //www.enterprisedb.com/products-services-training/products/postgres-plus-advanced-server Download Database/PostgreSql/tools/ ~ tips ~ ■ キャスト CAST(x AS typename) x typename e.g.) ((E 3461 ) numeric) ■ 文字列の前に付ける『E』 PostgreSQL 9.1から『standard_conforming_strings』がデフォルトonとなったらしい。 『standard_conforming_strings = on』が設定されている状態では、文字列中のエスケープシーケンスがエスケープシーケンスとして扱われない。つまりエスケープ文字がエスケープ文字として扱われず、ただの『\』となってしまう。 回避策としては、『standard_conforming_strings = off』とするか、『E string 』と書く。 環境移行時に、大量に修正箇所があって移植が困難な状況とかで無い限りは『E string 』を用いること。 権限不足でテーブル空間が作成できない 外部から接続したい pg_dumpとかで任意のパスワードを使いたい database間の差異を調べたい Database/PostgreSql/tips/ 更新日: 2018年09月12日 (水) 10時08分40秒 nullの項目を頭に持ってくる→ `select * from table_name order by sort_code asc nulls first;` nullの項目をケツに持ってくる→ `select * from table_name order by sort_code asc nulls last;` これを使えば降順の時は頭、昇順の時はケツとかその逆も可能になる。 ちなみに、Oracleも使えるみたいだけど、mysqlは使えねぇ... -- (s1n) 2018-09-12 10 14 25 test環境やlocal環境で完結する話なら性能を簡単に上げられる。 お客様環境とかでは絶対設定してはいけない。 `/etc/postgresql/10/main/postgresql.conf`の`fsync = off`とする。 システムコールfsyncはメモリ上とディスク上のfileを同期させる処理。 なので、停電などでメモリ上にしかないlogが消えると復旧が困難になったり、所望の状態へrollbackしたりが大変になるかもしれない。 local環境やtest環境ならoffってしまえば性能を容易に上げられる。 -- (s1n) 2018-09-21 09 19 02 名前 コメント すべてのコメントを見る
https://w.atwiki.jp/hanaoka/pages/6.html
いろいろ カンマ区切りで出力する persdb=# \a Output format is unaligned. persdb=# \pset fieldsep , Field separator is ",". persdb=# select ~~~~~~; テーブルを csv で出力する \pset format unaligned ←出力形式を指定 \pset fieldsep , ←フィールドのセパレータにカンマ区切りを指定 \pset footer ←フッタ(行数表示等)を出力させない \encoding shift-jis ←文字コードをs-jisに指定 \o ************.csv ←出力ファイルを指定 select * from ~~~~~ ←ここにSQLを書く ダンプいろいろ 全部ダンプ :pg_dump -U postgres -f DumpAll.sql persdb 定義だけダンプ :pg_dump -s -U postgres -f TableCreate.sql persdb データだけダンプ :pg_dump -a -U postgres -f DataDump.sql persdb 特定のテーブルのダンプ:pg_dump -U postgres -t テーブル データベース名 dump.out リストア :psql -U postgres -d dbname -f DumpAll.sql とか 置換 update grpfacilityservice set service_name=replace(service_name, - , ー ) where grp_id= G16 and facility_id= F0708 ; 意味:service_nameカラムの中の - を ー に置換する database一覧の表示 psql -l databaseのChange psql \c windowsのpostgrs リストア方法 C \Program Files\PostgreSQL\8.1\bin psql -U postgres DB名 dumpファイル名 copyコマンドの実行方法 persdb=# \copy facilityreservation from C \\csv\\facilityreservation.csv with delimiter , iコマンドの実行方法 persdb=# \i C \\csv\\update\grpfacilityaddress.sql 変更したconfigファイル /usr/local/pgsql/data/postgresql.confのlisten_addressesの値を * に設定します。 listen_addresses = locao host → listen_addresses = * /usr/local/pgsql/data/pg_hba.confファイルで認証設定を行います。 すべてのホストからの接続を無条件に許可する設定。 host all all 0.0.0.0 0.0.0.0 trust NULL変換 LEFT INNER JOIN したときなんかに、nullの代わりに「0」を表示したいとき COALESCE(r.sum,0) なんてやってみるとよい
https://w.atwiki.jp/paladin/pages/21.html
2008/02/19 JSPからのデータベース接続の実験環境構築中。 MySQLで構築する予定で実装もしてたのだが、文字化けがどうにもならず挫折。 急遽PostgresSQLにデータベースを変更。 バージョンは最新の8.3を選択 MySQLに比べるとインターネットでの情報量は少なかったが それほど困ることもなくインストールまでは終了。 JDBCドライバはスタックビルダからダウンロードする。 特に迷う余地はなかった。 Eclipseにてプロジェクトのワークフォルダ「WEB-INF」に postgresql-8.3-603.jdbc4.jar をインポートして、ドライバクラスとデータベースURLの設定を MySQLのものからPostgresに変更。 もう少してこずるかと思ったけど、案外あっさりデータベース接続成功。 参考までに、DB接続部分のソースコード。 public Connection createConnection() throws ClassNotFoundException,SQLException { Connection con = null; Class.forName("org.postgresql.Driver"); con = DriverManager.getConnection( "jdbc postgresql dictionary","name","pass"); con.setAutoCommit(true); return con; } MySQLも機会をみてもう少し文字コードまわりをいじってみたいと思うが 当面はPostgresで作業してみようと思う。